Explainable AI_P2: Why Does a Cat Look Like (for a Model)
Global Explanation: Explain the whole Model
Global 的 Explanation 是什麼意思呢,我们在前一堂课讲的是 Local 的 Explanation,也就是给机器一张照片,那它告诉我们说,看到这张图片,它為什麼觉得裡面有一隻猫

而 Global 的 Explanation 并不是针对,特定某一张照片来进行分析,而是把我们训练好的那个模型拿出来,根据这个模型裡面的参数去检查说,对这个 Network 而言,到底一隻猫长什麼样子,对一个 Network 而言,它心裡想像的猫长什麼样子
What does a filter detect?
举例来说,假设你今天 Train 好一个,Convolutional 的 Neural Network,Train 好在这边,那你知道在 Convolutional 的,Neural Network 裡面呢,就是有很多的 Filter,有很多的这个 Convolutional Layer

Convolutional Layer 裡面呢,有一堆的 Filter,那你把一张图片作為输入,Convolutional 的 Layer,它的输出是什麼呢,它的输出是一个 Feature Map,那每一个 Filter 都会给我们一个 Metric
那今天呢,假设我们有一张图片,作為这个 Convolutional Neural Network 的输入,这张图片我们用一个大写的 X 来表示,因為图片呢,通常是一个矩阵,我们用大写的 X,来表示这个图片所构成的矩阵,而如果把这张图片丢进去,你发现某一个 Filter,比如说 Filter 1,它在它的 Feature Map 裡面,很多位置都有比较大 的值,那意味著什麼
那可能就是意味著说,这个 Image X 裡面有很多 Filter 1,负责侦测的那些特徵,这个 **Image 裡面呢,有很多的 Pattern 是 Filter 1 负责侦测的,**那 Filter 1 看到这些 Pattern,所以它在它的 Feature Map 上,就 Output 比较大的值
但是现在我们要做的是 Global 的 Explanation,也就是我们还没有这张图片 Image X,我们没有要针对任何一张特定的图片做分析,但是我们现在想要知道说,对 Filter 1 而言,它想要看的 Pattern 到底长什麼样子,那怎麼做呢
我们就去製造出一张图片,它不是我们的 Database 裡面,任何一个特定的图片,而是机器自己去找出来的,自己创造出来的,我们要创造一张图片,这张图片它包含有 Filter 1 要 Detect 的 Pattern,那藉由看这张图片裡面的内容,我们就可以知道 Filter 1,它负责 Detect 什麼样的东西
那怎麼找这张图片呢,我们假设 Filter 1,它是这个 Filter 1 的这个 Feature Map,裡面的每一个 Element 叫做 ,就是 Filter 1 的那个 Feature Map 是一个矩阵,那矩阵裡面每一个 Element,我们用 来表示

那我们现在要做的事情是找一张图片 X,这张图片不是 Database 裡面的图片,而是我们把这个 X 呢,当做一个 Unknown Variable,当做我们要训练的那个参数,我们去找一张图片,这张图片丢到这个 Filter 以后,通过 Convolutional Layer 以后,输出这个 Feature Map 以后,Filter 1 对应的 Feature Map 裡面的值,也就是 的值越大越好,所以我们要找一个 X,让 的总和,也就是 Filter 1 的 Feature Map的 Output,它的值越大越好,那我们找出来的这个 X,我们就用 来表示
它不是 Database 裡面任何一张特定的图片,我们是把 X 当作 Unknown Variable,当作要 learn 的参数,去找出这个 , 丢到这个已经 Train 好的 Network 裡面,这个 Network 的 Convolutional Layer,它输出的这些 Feature 它的值,它输出的这个 Feature Map 裡面的值,会越大越好
那怎麼解这个问题呢,你会用类似 Gradient descent 的方法,只是因為我们现在是要去 Maximize 某一个东西,所以它不是 Gradient descent,它是 ==Gradient ascent==,不过它的原理跟 Gradient descent 是一模一样的
那我找出这个 以后,我们就可以去观察这 个 ,那看看 有什麼样的特徵,我们就可以知道说, 它可以 Maximize 这个 Filter Map 的 value,也就是这个 Filter 1,它在 Detect 什麼样的 Pattern
那这边是一个实际操作的结果了,我们就用这个 ==Mnist==,Mnist 是一个手写数字辨识的 Corpus,用 Mnist Train 出一个 Classifier,这个 Classifier 给它一张图片,它会判断说这张图片裡面是 1~9 的哪一个数字

训练好这个数字的 Classifier 以后呢,我们就把它的第二层的 Convolutional Layer,裡面的 Filter 拿出来,然后找出每一个 Filter 对应的 ,所以下面这边每一张图片,就是一个 ,然后每一张图片都对应到一个 Filter
那所以你可以想像说,这个第一张图片就是 Filter 1,它想要 Detect 的 Pattern,第二张图片,就是 Filter 2 想要 Detect 的 Pattern,以此类推,那这边是画了 12 个 Filter 出来
那从这些 Pattern 裡面,我们可以发现什麼呢,我们可以发现说,这个